//
//  RBGFavorisController.m
//  BateauGenerique
//
//  Created by Florent Champigny on 09/06/2014.
//  Copyright (c) 2014 Kevin De Jesus Ferreira. All rights reserved.
//

#import "RBGFavorisController.h"
#import "RBGNavigationBar.h"
#import "RBGAppDelegate.h"
#import "UIImageView+WebCache.h"
#import "RBGAnnonceCell.h"
#import "RBGDetailAnnonceViewController.h"
#import "RBGServiceAnnonce.h"
#import "Annonce.h"
#import "Lien.h"
#import "Moteur.h"
#import "RBGFiltreController.h"
#import "RBGTrieController.h"
#import "RBGTrieController.h"

@interface RBGFavorisController ()<RBGServiceAnnonceDelegate,UITableViewDelegate,UITableViewDataSource>{
    RBGServiceAnnonce* serviceAnnonce;
    RBGAppDelegate *appDelegate;
    NSMutableArray* annonces;
}

@end

@implementation RBGFavorisController


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    annonces = [NSMutableArray array];
    
    [self charger];
    [self chargerCouleur];

}

-(void)viewWillAppear:(BOOL)animated
{
    
    //annonces = nil;
    //annonces = [NSMutableArray array];
   // [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

    //[serviceAnnonce getFavoris:self.favorisManager.favoris];

    self.favorisManager = [[RBGFavorisManager alloc] init];
    [serviceAnnonce getFavoris:self.favorisManager.favoris];
    [self.table reloadData];
    [self setTitle:@"Favoris"];

    [RBGNavigationBar customNavigationBar:self.navigationController andTitle:@"Autres" andBackgroundColor:appDelegate.donnees.parametres.backgroundColorUn andTextColor:appDelegate.donnees.parametres.fontColorUn];
}

-(void)charger
{
    
    [self setTitle:@"Favoris"];
    serviceAnnonce = [[RBGServiceAnnonce alloc]init];
    serviceAnnonce.delegate = self;
    self.favorisManager = [[RBGFavorisManager alloc] init];
    [serviceAnnonce getFavoris:self.favorisManager.favoris];
    
    self.table.delegate = self;
    self.table.dataSource = self;
    
    appDelegate = (RBGAppDelegate *)[[UIApplication sharedApplication] delegate];
    
    [RBGNavigationBar customNavigationBar:self.navigationController andTitle:@"Annonces Favorites" andBackgroundColor:appDelegate.donnees.parametres.backgroundColorUn andTextColor:appDelegate.donnees.parametres.fontColorUn];
    
    //TODO remplacer par le chargement avec url
    //[self.fond setImageWithURL:[NSURL URLWithString:appDelegate.donnees.parametres.imageFond]];
    
    //[self.fond setFrame:CGRectMake(0, 0, 300, 132)];
    
    self.fond.hidden = YES;
    self.view.backgroundColor = [UIColor blackColor];
    self.table.backgroundColor = [UIColor blackColor];
    
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    RBGDetailAnnonceViewController *controller = [[RBGDetailAnnonceViewController alloc] initWithNibName:@"RBGDetailAnnonceViewController" bundle:nil];
    
        Annonce * annonceTmp = [annonces objectAtIndex:indexPath.row];
   
    
    RBGFavorisManager * favorisManager = [[RBGFavorisManager alloc]init];
    
    
    NSString* typeAnnonce = [favorisManager recuperer:annonceTmp.numero];
    
    if([typeAnnonce isEqualToString:@"bateau"]){
        controller.typeAnnonce = 1; //TODO

    }else{
        if([typeAnnonce isEqualToString:@"moteur"]){
            controller.typeAnnonce = 2; //TODO
        }else{
            controller.typeAnnonce = 3; //TODO

        }
    }
    NSLog(@"Type annonce %01d",controller.typeAnnonce);
    controller.annonce = [annonces objectAtIndex:indexPath.row];
    
    [self.navigationController pushViewController:controller animated:YES];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    
    return [annonces count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"annonceCell";
    
    Annonce * annonceTmp = [annonces objectAtIndex:indexPath.row];
    RBGAnnonceCell *cell = (RBGAnnonceCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"annonceCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
    
    cell.backgroundColor = [UIColor blackColor];
    cell.backgroundView = self.fond;
    //cell.selectedBackgroundView = [UIView new];
    
    [cell.titreAnnonce setTextColor:appDelegate.donnees.parametres.fontColorDeux];
    [cell.sousTitreAnnonce setTextColor:appDelegate.donnees.parametres.fontColorDeux];
    [cell.prixAnnonce setTextColor:appDelegate.donnees.parametres.fontColorUn];
    
    if(annonceTmp.lien != nil){
        [cell.imageAnnonce setImageWithURL:[NSURL URLWithString:annonceTmp.lien.url]];
    }
    
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    
    NSNumber *prixNumber = [NSNumber numberWithInteger:[annonceTmp.prix integerValue]];
    NSString *prix = [formatter stringFromNumber:prixNumber];
    prix = [prix stringByReplacingOccurrencesOfString:@"," withString:@" "];
    prix = [prix stringByReplacingOccurrencesOfString:@"$" withString:@""];
    
    [cell.titreAnnonce setText:annonceTmp.title];
    
    NSString* type = annonceTmp.type;
    
    if([type isEqualToString:BATEAU_A_MOTEUR] ||
       [type isEqualToString:PNEU] ||
       [type isEqualToString:VOILIER]){
        
        /*
         Pour Bateaux, Voiliers, Semi-Rigides
         
         > Marque Modele (2lignes si trop grand) / Motorisation - Annee / Prix et TVA
         
         */
        [cell.sousTitreAnnonce setText:[NSString stringWithFormat:@"%@ - %@",annonceTmp.nomMoteur,annonceTmp.annee]];
    }
    
    if([type isEqualToString:MOTEURS]){
        
        /*
         
         Pour Moteurs HB/IB
         
         > Marque Modele (2lignes si trop grand) / Puissance en ch - Annee / Prix et TVA
         
         */
        
        Moteur * moteur = annonceTmp.moteur;
        [cell.sousTitreAnnonce setText:[NSString stringWithFormat:@"%@ - %@",moteur.puissanceMoteur,annonceTmp.annee]];
    }
    
    if([type isEqualToString:ACCESSOIRES] ||
       [type isEqualToString:PLACE_DE_PORT]){
        /*
         
         Pour Divers, Place de Port et Remorques
         
         > Intitule (sur deux lignes si trop grand) / Categorie / Prix et TVA
         
         
         */
        
        [cell.sousTitreAnnonce setText:[NSString stringWithFormat:@"%@",annonceTmp.categorie]];
    }
    
    else if([type isEqualToString:LOCATION]){
        
        /*
         
         > Marque Modele(2lignes si trop grand) / Port de Départ (Lieu)
         
         Pour la location, si le prix est différent de 0, il faudra mettre le texte « A partir de » puis le prix puis le texte « / jour » si le prix est
         
         à 0, il faudra mettre « Nous consulter »
         */
        if(annonceTmp.prix == 0){
            [cell.prixAnnonce setText:[NSString stringWithFormat:@"Nous consulter"]];
        }else{
            [cell.prixAnnonce setText:[NSString stringWithFormat:@"A partir de %@ € / jour",prix]];
        }
        
        [cell.sousTitreAnnonce setText:[NSString stringWithFormat:@"%@",annonceTmp.portDeDepart]];
        
        
    }else{
        /*
         Pour le prix de vente, attention à la balise <apartirde> Disponible dans tous sauf location, Si la balise est à 1, il faudra rajouter le
         
         texte « a partir de » devant le prix.
         
         
         */
        
        if([annonceTmp.apartirDe isEqualToString:@"1"]){
            [cell.prixAnnonce setText:[NSString stringWithFormat:@"A partir de %@ € %@",prix,annonceTmp.taxePrix ]];
            
        }else{
            [cell.prixAnnonce setText:[NSString stringWithFormat:@"%@ € %@",prix,annonceTmp.taxePrix]];
        }
        
    }
    
    
    
    UIView *selectedView = [[UIView alloc]init];
    selectedView.backgroundColor = appDelegate.donnees.parametres.backgroundColorDeux;
    cell.selectedBackgroundView =  selectedView;
    return cell;
}



- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 90;
}


-(void)chargerCouleur
{
    //[self.table setBackgroundView:nil];
    //[self.table setBackgroundView:[[UIImageView alloc] initWithImage:self.fond.image] ];
    [self.table setSeparatorColor:appDelegate.donnees.parametres.fontColorUn];
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 0.01;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    return 115 * 2;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
    return YES;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    Annonce* annonce = [annonces objectAtIndex:indexPath.row];
    [self.favorisManager supprimerFavoris:annonce.numero];
    [annonces removeObjectAtIndex:indexPath.row];
   
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}


#pragma mark - RGBAnnonceServiceDelegate

- (void) receiveDonneesAnnonce:(id)donnees
                      andType :(int)typeDonnees
{
    
    annonces = [[NSMutableArray alloc]init];
    [annonces addObjectsFromArray:donnees];
    [self.table reloadData];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    
}

- (void) receiveErreurAnnonce:(int)statut
{
    UIAlertView *alert = [[UIAlertView alloc]
                          
                          initWithTitle:@"Erreur"
                          message:@"Erreur réseau : votre téléphone ne peut pas accéder aux informations"
                          delegate:self
                          cancelButtonTitle:@"Ok"
                          otherButtonTitles:nil];
    
    [alert show];
}

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
    return @"Supprimer";
}


@end
